package pe.com.bbva.ge.vista.vaadin.ui;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import pe.com.bbva.ge.domain.configuracion.Casetera;
import pe.com.bbva.ge.domain.seguridad.Usuario;
import pe.com.bbva.ge.domain.solicitud.DetalleCasetera;
import pe.com.bbva.ge.domain.solicitud.Solicitud;
import pe.com.bbva.ge.negocio.ConfiguracionNegocio;
import pe.com.bbva.ge.negocio.SolicitudNegocio;
import pe.com.bbva.ge.vista.vaadin.ui.component.ComboBoxATM;
import pe.com.bbva.ge.vista.vaadin.ui.component.TxtNumerico;
import pe.com.bbva.ge.vista.vaadin.ui.utileria.bean.PropiedadesTxtNumerico;

import com.vaadin.annotations.AutoGenerated;
import com.vaadin.data.util.IndexedContainer;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.event.FieldEvents.TextChangeListener;
import com.vaadin.event.FieldEvents.TextChangeEvent;
import com.vaadin.ui.AbstractTextField.TextChangeEventMode;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;

public class AtmUI extends VentanaUI implements ClickListener{

	@AutoGenerated
	private VerticalLayout mainLayout;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_1;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_4;
	@AutoGenerated
	private Button btnCerrar;
	@AutoGenerated
	private Button btnGuardar;
	@AutoGenerated
	private Button btnLimpiar;
	@AutoGenerated
	private AuditoriaUI auditoriaUI_1;
	@AutoGenerated
	private VerticalLayout verticalLayout_2;
	@AutoGenerated
	private Panel panel_5;
	@AutoGenerated
	private VerticalLayout verticalLayout_7;
	@AutoGenerated
	private Table tblCaseteras;
	@AutoGenerated
	private Panel panel_1;
	@AutoGenerated
	private VerticalLayout verticalLayout_3;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_8;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_5;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_7;
	@AutoGenerated
	private TextField txtFechaAtencionSolicitud;
	@AutoGenerated
	private Label label_4;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_6;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_2;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_10;
	@AutoGenerated
	private ComboBoxATM cmbATM;
	@AutoGenerated
	private Label label_3;
	@AutoGenerated
	private TextField txtFechaSolicitud;
	@AutoGenerated
	private Label label_2;
	@AutoGenerated
	private TextField txtNroSolicitud;
	@AutoGenerated
	private Label label_1;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_3;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_9;

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
	
	private Solicitud solicitud;
	private IndexedContainer container;
	private List<DetalleCasetera> listaDetallecaseteraes;

	@Autowired
	private ConfiguracionNegocio genericoNegocio;

	@Autowired
	private SolicitudNegocio gestionarSolicitudNegocio;

	private PropiedadesTxtNumerico propTxtNDecimales;
	private PropiedadesTxtNumerico propTxtNEnteros;

	/**
	 * The constructor should first build the main layout, set the
	 * composition root and then do any custom initialization.
	 *
	 * The constructor will not be automatically regenerated by the
	 * visual editor.
	 */
	public AtmUI(Solicitud solicitud) {
		buildMainLayout();
		setCompositionRoot(mainLayout);

		// TODO add user code here
		this.solicitud = solicitud;
	}
	
	public IndexedContainer getContainer() {
		return container;
	}

	public void setContainer(IndexedContainer container) {
		this.container = container;
	}
	
	public void postConstruccion()
	{
		this.propTxtNDecimales = new PropiedadesTxtNumerico();
		this.propTxtNDecimales.setEsDecimal(true);
		this.propTxtNEnteros = new PropiedadesTxtNumerico();
		this.propTxtNEnteros.setEsDecimal(false);
		
		// Obteniendo el detalle de casetera
//		this.listaDetallecaseteraes = gestionarSolicitudNegocio.obtenerDetalleCasetera(this.solicitud);
		
		//---->
		txtNroSolicitud.setValue(this.solicitud.getNumero());
		txtNroSolicitud.setEnabled(false);
		txtFechaSolicitud.setValue(this.solicitud.getCreacion());
		txtFechaSolicitud.setEnabled(false);
		txtFechaAtencionSolicitud.setValue(this.solicitud.getAtencion());
		txtFechaAtencionSolicitud.setEnabled(false);
		
		btnGuardar.addListener((ClickListener)this);
		
		
		// Estructura de tabla
		setContainer(new IndexedContainer());
		getContainer().addContainerProperty("casetera", TextField.class,  null);
		getContainer().addContainerProperty("moneda", TextField.class,  null);
		getContainer().addContainerProperty("denominacion", TextField.class,  null);
		getContainer().addContainerProperty("cantidad", TextField.class,  null);
		getContainer().addContainerProperty("monto", TextField.class,  null);
		getContainer().addContainerProperty("observacion", TextField.class,  null);
		getContainer().addContainerProperty("objCasterea", Casetera.class,  null);
		tblCaseteras.setContainerDataSource(getContainer());
		
		tblCaseteras.setColumnHeader("casetera", "casetera");
		tblCaseteras.setColumnHeader("moneda", "Moneda");
		tblCaseteras.setColumnHeader("denominacion", "Denominación");
		tblCaseteras.setColumnHeader("cantidad", "cantidad");
		tblCaseteras.setColumnHeader("monto", "Monto");
		tblCaseteras.setColumnHeader("observacion", "Observación");
		tblCaseteras.setColumnHeader("objCasterea", "objCasterea");
		
		tblCaseteras.setColumnWidth("casetera", 55);
		tblCaseteras.setColumnWidth("moneda", 75);
		tblCaseteras.setColumnWidth("denominacion", 85);
		tblCaseteras.setColumnWidth("cantidad", 85);
		tblCaseteras.setColumnWidth("monto", 85);
		tblCaseteras.setColumnWidth("observacion", 260);
		tblCaseteras.setColumnWidth("objCasterea", 55);
		
		// Lista de Atm, obtener caseteras
		cmbATM.addListener(new Property.ValueChangeListener() {
		    public void valueChange(ValueChangeEvent event) {
		        if (cmbATM.getValue() != null) {
		            List<Casetera> listaCaseteras = genericoNegocio.obtenerListaCaseteras(cmbATM.obtenerATM());
		            int i = 1;
		            getContainer().removeAllItems();
		            
		            for(Casetera casetera : listaCaseteras)
		            {
		            	Item item = getContainer().addItem(i);
		            	TextField txtNroCasetera = new TextField();
		            	txtNroCasetera.setWidth("53");
		            	txtNroCasetera.setValue(String.valueOf(i));
		            	txtNroCasetera.setEnabled(false);
		            	
		            	TextField txtCodigoMoneda = new TextField();
		            	txtCodigoMoneda.setWidth("73");
		            	//txtCodigoMoneda.setValue(casetera.getDenominacion().getMoneda().getCodigo());
		            	txtCodigoMoneda.setEnabled(false);
		            	
		            	TextField txtDenominacion = new TextField();
		            	txtDenominacion.setWidth("83");
		            	//txtDenominacion.setValue(casetera.getDenominacion().getValor().toString());
		            	txtDenominacion.setEnabled(false);
		            	txtDenominacion.setStyleName("txtDenominaciones");
		            	
		            	TxtNumerico txtCantidad = new TxtNumerico("", getPropTxtNEnteros());
		            	txtCantidad.setWidth("83");
		            	txtCantidad.setData(i);
		            	
		            	TxtNumerico txtMonto = new TxtNumerico("", getPropTxtNDecimales());
		            	txtMonto.setWidth("83");
		            	txtMonto.setData(i);
		            	
		            	TextField txtObservacion = new TextField();
		            	txtObservacion.setWidth("258");
		            	
		            	txtCantidad.addListener(new TextChangeListener() {
		    			    public void textChange(TextChangeEvent event) {
		    			    	Integer cantidadSolicitado = Integer.valueOf(event.getText());
		    			    	TxtNumerico txtActual = (TxtNumerico) event.getSource();
		    			    	txtActual.setValue(event.getText());
		    			    	
		    			    	Object itemId = txtActual.getData();
		    			    	Item item = tblCaseteras.getItem(itemId);
		    			    	TextField txtDenominacion = (TextField) item.getItemProperty("denominacion").getValue();
		    			    	Integer denominacion = Integer.valueOf(txtDenominacion.getValue().toString().trim());
		    			    	TxtNumerico txtMontoSolicitado = (TxtNumerico) item.getItemProperty("monto").getValue();
		    			    	txtMontoSolicitado.setValue(String.valueOf(cantidadSolicitado * denominacion));			    	
		    			    	item.getItemProperty("cantidad").setValue(txtActual);
		    			    	item.getItemProperty("monto").setValue(txtMontoSolicitado);
		    			    	agregarcasetera(item);
		    			    }
		    			});
		    			
		    			txtMonto.addListener(new TextChangeListener() {
		    				public void textChange(TextChangeEvent event) {
		    					TxtNumerico txtActual = (TxtNumerico) event.getSource();
		    			    	Object itemId = txtActual.getData();
		    			    	Item item = tblCaseteras.getItem(itemId);
		    			    	txtActual.setValue(event.getText());
		    			    	
		    			    	// Calculado la cantidad
		    			    	TxtNumerico txtCantidadSolicitado = (TxtNumerico) item.getItemProperty("cantidad").getValue();
		    			    	TextField txtDenominacion = (TextField) item.getItemProperty("denominacion").getValue();
		    			    	BigDecimal denominacion = BigDecimal.valueOf(Double.valueOf(txtDenominacion.getValue().toString()));
		    			    	BigDecimal monto = BigDecimal.valueOf(Double.valueOf(txtActual.getValue().toString()));
		    			    	BigDecimal cantidad = monto.divide(denominacion);
		    			    	//MathContext mc = new MathContext(0);
		    			    	txtCantidadSolicitado.setValue(cantidad.toBigInteger().toString());
		    			    	Integer cantidadNueva = Integer.valueOf(txtCantidadSolicitado.getValue().toString());
		    			    	txtActual.setValue(String.valueOf(cantidadNueva * Integer.valueOf(denominacion.toBigInteger().toString())));
		    			    	
		    			    	item.getItemProperty("cantidad").setValue(txtCantidadSolicitado);
		    			    	item.getItemProperty("monto").setValue(txtActual);
		    			    	agregarcasetera(item);
		    			    }
		    			});
		    			
		    			for(DetalleCasetera detalleCasetera : getListaDetallecaseteraes())
		    			{
		    				if(detalleCasetera.getCasetera().getId() == casetera.getId())
		    				{
		    					txtCantidad.setValue(detalleCasetera.getCantidad());
		    					//txtMonto.setValue(detalleCasetera.getCasetera().getDenominacion().getValor().multiply(BigDecimal.valueOf(detalleCasetera.getCantidad())).toString());
		    					txtObservacion.setValue(detalleCasetera.getObservacion());
		    				}
		    			}
		            	
		            	item.getItemProperty("casetera").setValue(txtNroCasetera);
		            	item.getItemProperty("moneda").setValue(txtCodigoMoneda);
		            	item.getItemProperty("denominacion").setValue(txtDenominacion);
		            	item.getItemProperty("cantidad").setValue(txtCantidad);
		            	item.getItemProperty("monto").setValue(txtMonto);
		            	item.getItemProperty("observacion").setValue(txtObservacion);
		            	item.getItemProperty("objCasterea").setValue(casetera);
		            	
		            	i++;
		            }
		        }
		    }
		});
		cmbATM.setImmediate(true);
		
		tblCaseteras.setVisibleColumns(new Object[]{"casetera","moneda","denominacion","cantidad","monto","observacion"});
	}
	
	private void agregarcasetera(Item item)
	{
		DetalleCasetera detallecasetera = new DetalleCasetera();
		Casetera casetera = (Casetera) item.getItemProperty("objCasterea").getValue();
		boolean agregar = true;
		
		TextField txtCantidad = (TextField) item.getItemProperty("cantidad").getValue();
		TextField txtObservacion = (TextField) item.getItemProperty("observacion").getValue();
		
		for(DetalleCasetera dcasetera : this.listaDetallecaseteraes)
		{
			if(dcasetera.getCasetera().getId() == casetera.getId())
			{
				dcasetera.setCasetera(casetera);
				//dcasetera.setCantidad(Integer.valueOf(txtCantidad.getValue().toString()));
				dcasetera.setObservacion(txtObservacion.getValue().toString());
				agregar = false;
				break;
			}
		}
		
		if(agregar)
		{
			detallecasetera.setCasetera(casetera);
			//detallecasetera.setCantidad(Integer.valueOf(txtCantidad.getValue().toString()));
			detallecasetera.setObservacion(txtObservacion.getValue().toString());
			this.listaDetallecaseteraes.add(detallecasetera);
		}
	}
	
	private void guardarDetalleCasetera()
	{
		Usuario creador = genericoNegocio.obtener(1l, Usuario.class);
		
		for(DetalleCasetera detalleCasetera : this.listaDetallecaseteraes)
		{
			detalleCasetera.setId(1001 + gestionarSolicitudNegocio.contar(DetalleCasetera.class));
			detalleCasetera.setCreacion(new Date());
			detalleCasetera.setCreador(creador);
			//detalleCasetera.setSolicitud(this.solicitud);
			
			gestionarSolicitudNegocio.crear(detalleCasetera);
		}
	}
	
	public PropiedadesTxtNumerico getPropTxtNDecimales() {
		return propTxtNDecimales;
	}

	public void setPropTxtNDecimales(PropiedadesTxtNumerico propTxtNDecimales) {
		this.propTxtNDecimales = propTxtNDecimales;
	}

	public PropiedadesTxtNumerico getPropTxtNEnteros() {
		return propTxtNEnteros;
	}

	public void setPropTxtNEnteros(PropiedadesTxtNumerico propTxtNEnteros) {
		this.propTxtNEnteros = propTxtNEnteros;
	}
	
	@Override
	public void buttonClick(ClickEvent event) {
		if(event.getButton().equals(btnGuardar))
		{
			guardarDetalleCasetera();
		}
	}
	
	public List<DetalleCasetera> getListaDetallecaseteraes() {
		return listaDetallecaseteraes;
	}

	public void setListaDetallecaseteraes(
			List<DetalleCasetera> listaDetallecaseteraes) {
		this.listaDetallecaseteraes = listaDetallecaseteraes;
	}

	@AutoGenerated
	private VerticalLayout buildMainLayout() {
		// common part: create layout
		mainLayout = new VerticalLayout();
		mainLayout.setImmediate(false);
		mainLayout.setWidth("-1px");
		mainLayout.setHeight("-1px");
		mainLayout.setMargin(false);
		
		// top-level component properties
		setWidth("-1px");
		setHeight("-1px");
		
		// verticalLayout_2
		verticalLayout_2 = buildVerticalLayout_2();
		mainLayout.addComponent(verticalLayout_2);
		
		// auditoriaUI_1
		auditoriaUI_1 = new AuditoriaUI();
		auditoriaUI_1.setImmediate(false);
		auditoriaUI_1.setWidth("-1px");
		auditoriaUI_1.setHeight("-1px");
		mainLayout.addComponent(auditoriaUI_1);
		
		// horizontalLayout_1
		horizontalLayout_1 = buildHorizontalLayout_1();
		mainLayout.addComponent(horizontalLayout_1);
		
		return mainLayout;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_2() {
		// common part: create layout
		verticalLayout_2 = new VerticalLayout();
		verticalLayout_2.setImmediate(false);
		verticalLayout_2.setWidth("840px");
		verticalLayout_2.setHeight("340px");
		verticalLayout_2.setMargin(false);
		
		// panel_1
		panel_1 = buildPanel_1();
		verticalLayout_2.addComponent(panel_1);
		
		// panel_5
		panel_5 = buildPanel_5();
		verticalLayout_2.addComponent(panel_5);
		verticalLayout_2.setExpandRatio(panel_5, 1.0f);
		
		return verticalLayout_2;
	}

	@AutoGenerated
	private Panel buildPanel_1() {
		// common part: create layout
		panel_1 = new Panel();
		panel_1.setCaption("Datos Solicitud");
		panel_1.setImmediate(false);
		panel_1.setWidth("100.0%");
		panel_1.setHeight("98px");
		
		// verticalLayout_3
		verticalLayout_3 = buildVerticalLayout_3();
		panel_1.setContent(verticalLayout_3);
		
		return panel_1;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_3() {
		// common part: create layout
		verticalLayout_3 = new VerticalLayout();
		verticalLayout_3.setImmediate(false);
		verticalLayout_3.setWidth("100.0%");
		verticalLayout_3.setHeight("100.0%");
		verticalLayout_3.setMargin(false);
		
		// horizontalLayout_9
		horizontalLayout_9 = new HorizontalLayout();
		horizontalLayout_9.setImmediate(false);
		horizontalLayout_9.setWidth("100.0%");
		horizontalLayout_9.setHeight("8px");
		horizontalLayout_9.setMargin(false);
		verticalLayout_3.addComponent(horizontalLayout_9);
		
		// horizontalLayout_2
		horizontalLayout_2 = buildHorizontalLayout_2();
		verticalLayout_3.addComponent(horizontalLayout_2);
		verticalLayout_3.setExpandRatio(horizontalLayout_2, 1.0f);
		
		// horizontalLayout_5
		horizontalLayout_5 = buildHorizontalLayout_5();
		verticalLayout_3.addComponent(horizontalLayout_5);
		
		// horizontalLayout_8
		horizontalLayout_8 = new HorizontalLayout();
		horizontalLayout_8.setImmediate(false);
		horizontalLayout_8.setWidth("100.0%");
		horizontalLayout_8.setHeight("8px");
		horizontalLayout_8.setMargin(false);
		verticalLayout_3.addComponent(horizontalLayout_8);
		
		return verticalLayout_3;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_2() {
		// common part: create layout
		horizontalLayout_2 = new HorizontalLayout();
		horizontalLayout_2.setImmediate(false);
		horizontalLayout_2.setWidth("100.0%");
		horizontalLayout_2.setHeight("26px");
		horizontalLayout_2.setMargin(false);
		
		// horizontalLayout_3
		horizontalLayout_3 = new HorizontalLayout();
		horizontalLayout_3.setImmediate(false);
		horizontalLayout_3.setWidth("59px");
		horizontalLayout_3.setHeight("26px");
		horizontalLayout_3.setMargin(false);
		horizontalLayout_2.addComponent(horizontalLayout_3);
		
		// label_1
		label_1 = new Label();
		label_1.setImmediate(false);
		label_1.setWidth("-1px");
		label_1.setHeight("-1px");
		label_1.setValue("N° Solicitud:");
		horizontalLayout_2.addComponent(label_1);
		
		// txtNroSolicitud
		txtNroSolicitud = new TextField();
		txtNroSolicitud.setImmediate(false);
		txtNroSolicitud.setWidth("-1px");
		txtNroSolicitud.setHeight("-1px");
		horizontalLayout_2.addComponent(txtNroSolicitud);
		
		// label_2
		label_2 = new Label();
		label_2.setImmediate(false);
		label_2.setWidth("-1px");
		label_2.setHeight("-1px");
		label_2.setValue("Fecha de Solicitud:");
		horizontalLayout_2.addComponent(label_2);
		
		// txtFechaSolicitud
		txtFechaSolicitud = new TextField();
		txtFechaSolicitud.setImmediate(false);
		txtFechaSolicitud.setWidth("-1px");
		txtFechaSolicitud.setHeight("-1px");
		horizontalLayout_2.addComponent(txtFechaSolicitud);
		
		// label_3
		label_3 = new Label();
		label_3.setImmediate(false);
		label_3.setWidth("-1px");
		label_3.setHeight("-1px");
		label_3.setValue("ATM Relacionado:");
		horizontalLayout_2.addComponent(label_3);
		
		// cmbATM
		cmbATM = new ComboBoxATM();
		cmbATM.setImmediate(false);
		cmbATM.setWidth("-1px");
		cmbATM.setHeight("-1px");
		horizontalLayout_2.addComponent(cmbATM);
		
		// horizontalLayout_10
		horizontalLayout_10 = new HorizontalLayout();
		horizontalLayout_10.setImmediate(false);
		horizontalLayout_10.setWidth("25px");
		horizontalLayout_10.setHeight("-1px");
		horizontalLayout_10.setMargin(false);
		horizontalLayout_2.addComponent(horizontalLayout_10);
		
		return horizontalLayout_2;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_5() {
		// common part: create layout
		horizontalLayout_5 = new HorizontalLayout();
		horizontalLayout_5.setImmediate(false);
		horizontalLayout_5.setWidth("100.0%");
		horizontalLayout_5.setHeight("26px");
		horizontalLayout_5.setMargin(false);
		
		// horizontalLayout_6
		horizontalLayout_6 = new HorizontalLayout();
		horizontalLayout_6.setImmediate(false);
		horizontalLayout_6.setWidth("275px");
		horizontalLayout_6.setHeight("26px");
		horizontalLayout_6.setMargin(false);
		horizontalLayout_5.addComponent(horizontalLayout_6);
		
		// label_4
		label_4 = new Label();
		label_4.setImmediate(false);
		label_4.setWidth("-1px");
		label_4.setHeight("-1px");
		label_4.setValue("Fecha de Atención:");
		horizontalLayout_5.addComponent(label_4);
		
		// txtFechaAtencionSolicitud
		txtFechaAtencionSolicitud = new TextField();
		txtFechaAtencionSolicitud.setImmediate(false);
		txtFechaAtencionSolicitud.setWidth("-1px");
		txtFechaAtencionSolicitud.setHeight("-1px");
		horizontalLayout_5.addComponent(txtFechaAtencionSolicitud);
		
		// horizontalLayout_7
		horizontalLayout_7 = new HorizontalLayout();
		horizontalLayout_7.setImmediate(false);
		horizontalLayout_7.setWidth("296px");
		horizontalLayout_7.setHeight("26px");
		horizontalLayout_7.setMargin(false);
		horizontalLayout_5.addComponent(horizontalLayout_7);
		
		return horizontalLayout_5;
	}

	@AutoGenerated
	private Panel buildPanel_5() {
		// common part: create layout
		panel_5 = new Panel();
		panel_5.setCaption("Pedido por Casetera");
		panel_5.setImmediate(false);
		panel_5.setWidth("100.0%");
		panel_5.setHeight("100.0%");
		
		// verticalLayout_7
		verticalLayout_7 = buildVerticalLayout_7();
		panel_5.setContent(verticalLayout_7);
		
		return panel_5;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_7() {
		// common part: create layout
		verticalLayout_7 = new VerticalLayout();
		verticalLayout_7.setImmediate(false);
		verticalLayout_7.setWidth("100.0%");
		verticalLayout_7.setHeight("100.0%");
		verticalLayout_7.setMargin(false);
		
		// tblCaseteras
		tblCaseteras = new Table();
		tblCaseteras.setImmediate(false);
		tblCaseteras.setWidth("819px");
		tblCaseteras.setHeight("223px");
		verticalLayout_7.addComponent(tblCaseteras);
		
		return verticalLayout_7;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_1() {
		// common part: create layout
		horizontalLayout_1 = new HorizontalLayout();
		horizontalLayout_1.setImmediate(false);
		horizontalLayout_1.setWidth("100.0%");
		horizontalLayout_1.setHeight("-1px");
		horizontalLayout_1.setMargin(false);
		
		// horizontalLayout_4
		horizontalLayout_4 = buildHorizontalLayout_4();
		horizontalLayout_1.addComponent(horizontalLayout_4);
		horizontalLayout_1.setComponentAlignment(horizontalLayout_4,
				new Alignment(34));
		
		return horizontalLayout_1;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_4() {
		// common part: create layout
		horizontalLayout_4 = new HorizontalLayout();
		horizontalLayout_4.setImmediate(false);
		horizontalLayout_4.setWidth("220px");
		horizontalLayout_4.setHeight("-1px");
		horizontalLayout_4.setMargin(false);
		
		// btnLimpiar
		btnLimpiar = new Button();
		btnLimpiar.setCaption("Limpiar");
		btnLimpiar.setImmediate(true);
		btnLimpiar.setWidth("-1px");
		btnLimpiar.setHeight("-1px");
		horizontalLayout_4.addComponent(btnLimpiar);
		
		// btnGuardar
		btnGuardar = new Button();
		btnGuardar.setCaption("Guardar");
		btnGuardar.setImmediate(true);
		btnGuardar.setWidth("-1px");
		btnGuardar.setHeight("-1px");
		horizontalLayout_4.addComponent(btnGuardar);
		
		// btnCerrar
		btnCerrar = new Button();
		btnCerrar.setCaption("Cerrar");
		btnCerrar.setImmediate(true);
		btnCerrar.setWidth("-1px");
		btnCerrar.setHeight("-1px");
		horizontalLayout_4.addComponent(btnCerrar);
		
		return horizontalLayout_4;
	}

}
